#include <iostream>

using namespace std;
const int N = 1e4 + 10;
int x[N], y[N], t[N];
int n, m;
int f[N];
int main()
{
    // zdl:: 这个道题目其实就是一道直接使用最长上升子序列的方式就可以完成的题目
    cin >> n >> m;
    int ret = 0;
    for (int i = 1; i <= m; i++)
    {
        cin >> t[i] >> x[i] >> y[i];
        f[i] = 1;
        for (int j = 1; j < i; j++)
        {
            // zdl:: 这里直接可以使用曼哈顿距离离开解决这个问题
            if (abs(x[i] - x[j]) + abs(y[i] - y[j]) <= t[i] - t[j])
            {
                f[i] = max(f[i], f[j] + 1);
            }
        }
        ret = max(ret, f[i]);
    }

    cout << ret << endl;
    return 0;
}